$(document).ready(function(){
    $('#estado').change(function(){
        
        var url = $('#base_url').val()+'/cidade/load_cidades';
        
        $('#cidade').hide();
        $('#loader').show();
        
        $('#cidade').load(url,{uf: $(this).val()},function(){
            $('#loader').hide();
            $('#cidade').show();
        });
    });
    
   $("#editar_cliente").validate({
        onkeyup: false,
        errorClass: 'error',
        validClass: 'valid',
        highlight: function(element) {
            $(element).closest('div').addClass("f-error");
        },
        unhighlight: function(element) {
            $(element).closest('div').removeClass("f-error");
        },
        errorPlacement: function(error, element) {
            $(element).closest('div').append(error);
        },
        rules: {
            nome: {
                required: true
            }, 
            cpf: {
                required: true,
                validaCpf:true
            }, 
            email: {
                required: true,
                email:true,
                valida_email:true
            },
            logradouro: {
                required: true
            },
            numero: {
                required: true,
                number:true
            },
            bairro: {
                required: true
            },
            cidade: {
                required: true
            },
            estado: {
                required: true
            },
            sexo: {
                required: true
            },
            messages: {
            }
        }
    });
    
    jQuery.validator.addMethod("valida_email", function(value, element) {
        
        var id = $('#cliente_id').val();
        var email = $('#email').val();
        var url = $('#base_url').val()+'/clientes/valida_email/httpx';
       
        
        var resultado= $.ajax({url:url,
            dataType:'html',
            type:'post',
            data:'email='+ email + '&id='+ id,
            async:false,
        
        }).responseText;
        
        if(resultado == 1){
                return true;
            }else{
                return false;
            }

    }, "Já existe um usuário cadastrado com este email.");
    
   $("#cpf").inputmask("999.999.999-99"); 
   $("#telefone").inputmask("mask", {"mask": "(99) 9999-9999"});
   
   jQuery.validator.addMethod('validaCpf', function(value, element) {

        value = removeMascara(value);
        return(value.length > 11) ? validaCnpj(value) : validaCpf(value);
    }, 'O valor fornecido nao e valido');
    
    function removeMascara(pNum)
    {
        return String(pNum).replace(/\D/g, "").replace(/^0+/, "");
    }
    
    function validaCpf(cpf) {
        var soma;
        var resto;
        var i;

        if ((cpf.length !== 11) ||
                (cpf === "00000000000") || (cpf === "11111111111") ||
                (cpf === "22222222222") || (cpf === "33333333333") ||
                (cpf === "44444444444") || (cpf === "55555555555") ||
                (cpf === "66666666666") || (cpf === "77777777777") ||
                (cpf === "88888888888") || (cpf === "99999999999")) {
            return false;
        }

        soma = 0;

        for (i = 1; i <= 9; i++) {
            soma += Math.floor(cpf.charAt(i - 1)) * (11 - i);
        }

        resto = 11 - (soma - (Math.floor(soma / 11) * 11));

        if ((resto == 10) || (resto == 11)) {
            resto = 0;
        }

        if (resto != Math.floor(cpf.charAt(9))) {
            return false;
        }

        soma = 0;

        for (i = 1; i <= 10; i++) {
            soma += cpf.charAt(i - 1) * (12 - i);
        }

        resto = 11 - (soma - (Math.floor(soma / 11) * 11));

        if ((resto == 10) || (resto == 11)) {
            resto = 0;
        }

        if (resto != Math.floor(cpf.charAt(10))) {
            return false;
        }

        return true;
    }
    
    
    
});